<?php

class Admin_EstadoController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

	public function indexAction()
    {
    	$form = new SON_Forms_Busca();
        $estado = new Estado();
        $session = new Zend_Session_Namespace('estado');
         
        $conditions = array();
        if ($this->_request->isPost()) {
        	$session->post = $this->_request->getPost();
        }
         
        if ($session->post) {
        	$form->populate($session->post);
        	if ($session->post['filtro_busca']) {
        		$conditions = array('nome LIKE ?' => '%' . $session->post['filtro_busca'] . '%');
        	}
        }
        
        $this->view->messages = $this->_helper->getHelper('FlashMessenger')->getMessages();
        $this->view->form = $form;
        $this->view->estados = $estado->search(
            array(
                'page' => $this->_getParam('page', 1),
                'conditions' => $conditions
            )
        );
    }

    public function addAction()
    {
        $form = new SON_Forms_Estado();
        
        if ($this->_request->isPost()) {
            $data = $this->_request->getPost();
            if ($form->isValid($data)) {
        
                $estado = new Estado($data);
                $estado->save();
                
                $this->_helper->FlashMessenger(
                	array('success' => 'Estado cadastrado com sucesso')
                );
        
                $this->_redirect('admin/estado/');
            } else {
    			$form->populate($data);
    			$this->view->error = $form->getMessages();
    		}
        }
        
        $this->view->form = $form;
    }

    public function editAction()
    {
        $estado = new Estado();
        $restado = $estado->getAsArray((int) $this->_getParam('id', 0));
    
        $form = new SON_Forms_Estado();
        $form->setAsEditForm($restado);
    
        if ($this->_request->isPost()) {
            $data = $this->_request->getPost();
            if ($form->isValid($data)) {
                $estado = new Estado($data);
                $estado->save();
                
                $this->_helper->FlashMessenger(
                	array('success' => 'Estado alterado com sucesso')
                );
                
                $this->_redirect('admin/estado/');
            } else {
                $form->populate($data);
                $this->view->error = $form->getMessages();
            }
        }
        
        $this->view->form = $form;
    }
    
    public function deleteAction()
    {
        $estado = new Estado();
        if ((int) $this->_getParam('id') > 0) {
            $estado->delete((int) $this->_getParam('id'));
            
            $this->_helper->FlashMessenger(
            	array('success' => 'Estado excluído com sucesso')
            );
        }
    
        $this->_helper->viewRenderer->setNoRender();
        $this->_redirect("admin/estado/");
    }


}

